package com.aaron.config;

import lombok.*;

/**
 * 向zookeeper注册信息时 需要这个类
 */
@AllArgsConstructor
@NoArgsConstructor
@Getter
@Setter
@Builder
@ToString
public class RpcServiceConfig {
    // 服务版本号
    private String version = "";

    // 当接口有多个实现类时，按照group进行区分
    private String group = "";

    // 实际的服务对象，是服务端提供服务的接口的实现类
    private Object service;

    // 测试例中： 是com.aaron.HelloServicetest2version2
    public String getRpcServiceName() {
        return this.getServiceName() + this.getGroup() + this.getVersion();
    }

    public String getServiceName() {
        // 测试中，返回的是 com.aaron.HelloService，也就是服务端提供的 需要实现的接口 全类名
        return this.service.getClass().getInterfaces()[0].getCanonicalName();
    }
}
